package br.com.positrot.model.vo.elegibilidade;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;

import br.com.positrot.form.FormUtil;
import br.com.positrot.model.dao.SiteDAO;
import br.com.positrot.model.dao.exception.DaoException;
import br.com.positrot.model.log.Form;
import br.com.positrot.model.vo.Resumo;

@SuppressWarnings("serial")
@Entity
@Table(name = "data.vw_elegibilidade_resumo")
@NamedQueries({			
	@NamedQuery(name = "ElegibilidadeResumoVO.obterResumos", query = "from ElegibilidadeResumoVO where numEstudo = :pid"),
	@NamedQuery(name="ElegibilidadeResumoVO.obterItensAuditadosPorPid", query="from ElegibilidadeResumoVO where numEstudo = :pid"),
	@NamedQuery(name = "ElegibilidadeResumoVO.obterResumosPorSite", query = "from ElegibilidadeResumoVO where site = :site"),
	@NamedQuery(name="ElegibilidadeResumoVO.obterItensAuditadosPorPidPorSite", query="from ElegibilidadeResumoVO where numEstudo = :pid and site = :site"),
})
public class ElegibilidadeResumoVO implements Resumo, Serializable {

	@Id
	@Column(name = "idelegibilidade", nullable = false)
	private int idElegibilidade;
	
	@Column(name = "numEstudo", nullable = false)
	private int numEstudo;
	
	@Column(name = "site", nullable = false)
	private Integer site;
	
	@Column(name = "dtinclusao", nullable = false)
	@Temporal(TemporalType.DATE)
	private Date dtInclusao;
	
	@Transient
	private String identificacao = null;
	
	public int getIdElegibilidade() {
		return idElegibilidade;
	}

	public void setIdElegibilidade(int idElegibilidade) {
		this.idElegibilidade = idElegibilidade;
	}

	public int getNumEstudo() {
		return numEstudo;
	}

	public void setNumEstudo(int numEstudo) {
		this.numEstudo = numEstudo;
	}

	public Integer getSite() {
		return site;
	}

	public void setSite(Integer site) {
		this.site = site;
	}

	public Date getDtInclusao() {
		return dtInclusao;
	}

	public void setDtInclusao(Date dtInclusao) {
		this.dtInclusao = dtInclusao;
	}

	public String getIdentificacao() {
		this.identificacao = toString();
		return identificacao;
	}

	public void setIdentificacao(String identificacao) {
		this.identificacao = identificacao;
	}

	
	@Override
	public int getId() {

		return getIdElegibilidade();
		
	}
	
	@Override
	public Form getForm(){
		return FormUtil.FormsEnum.ELEGIBILIDADE.getForm();
	}
	
	
	@Override
	public String toString(){
		try {
			return "UNIDADE: " + new SiteDAO().obterSitePorPid(this.getSite()).getDescricao();
		} catch (DaoException e) {
			return "";
		}
	}



}
